﻿Public Class ABM_Unidad_Medida
    Dim acceso As New acceso
    Dim esNuevo As Boolean
    Dim comando As New SqlClient.SqlCommand
    Dim Unidad As New UnidadMedida()

    Private Sub cargarGrilla()
        Dim tabla As New Data.DataTable()
        tabla = acceso.leo_tabla("UnidadMedida")
        dgv_Unidad_Medida.DataSource = tabla
        acomodarGrilla()
    End Sub

    Public Sub insertUnidadMedida(ByVal uniMed As UnidadMedida)
        Dim sql As String
        sql = "Insert INTO UnidadMedida (nombre) VALUES (@nombre)"
        comando = New Data.SqlClient.SqlCommand
        comando.Parameters.AddWithValue("@nombre", uniMed._nombre)
        acceso.ejecutarActualizaciones(sql, comando)
    End Sub

    Public Sub updateUnidadMedida(ByVal uniMed As UnidadMedida)
        Dim sql As String
        sql = "UPDATE UnidadMedida SET nombre = @nombre where idUnidadMedida = @idUnidadMedida"
        comando = New Data.SqlClient.SqlCommand
        comando.Parameters.AddWithValue("@nombre", uniMed._nombre)
        comando.Parameters.AddWithValue("@idUnidadMedida", uniMed._idUnidadMedida)
        acceso.ejecutarActualizaciones(sql, comando)
    End Sub
    Private Sub acomodarGrilla()
        dgv_Unidad_Medida.Columns("idUnidadMedida").HeaderText = "Numero de Unidad Medida"
        dgv_Unidad_Medida.Columns("idUnidadMedida").Width = 60
        dgv_Unidad_Medida.Columns("nombre").HeaderText = "Nombre"
    End Sub

    Private Sub dgv_Unidad_Medida_DoubleClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles dgv_Unidad_Medida.Click
        txt_id_unidad.Text = dgv_Unidad_Medida.SelectedRows(0).Cells("idUnidadMedida").Value
        txt_nombre_unidad.Text = dgv_Unidad_Medida.SelectedRows(0).Cells("nombre").Value
        esNuevo = False
    End Sub

    Private Sub btn_nuevo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_nuevo.Click
        esNuevo = True
        blanquear()

    End Sub

    Private Sub blanquear()
        txt_nombre_unidad.Text = ""
        txt_nombre_unidad.Focus()
    End Sub

    Private Sub btn_salir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_salir.Click
            Me.Close()
    End Sub

    Private Sub btn_guardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_guardar.Click
        'Validaciones
        If txt_nombre_unidad.Text = "" Then
            MessageBox.Show("El campo Nombre no puede estar vacio", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            txt_nombre_unidad.Focus()
            Return
        End If



        Unidad._nombre = txt_nombre_unidad.Text

        If esNuevo = True Then
            insertUnidadMedida(Unidad)
            cargarGrilla()
            blanquear()
            MessageBox.Show("Nueva unidad de medida cargada con exito", "ATENCION", MessageBoxButtons.OK, MessageBoxIcon.Information)
        Else
            Unidad._idUnidadMedida = txt_id_unidad.Text
            updateUnidadMedida(Unidad)
            cargarGrilla()
            blanquear()
            MessageBox.Show("Unidad de medida actualizada con exito", "ATENCION", MessageBoxButtons.OK, MessageBoxIcon.Information)
        End If


    End Sub

    Private Sub btn_eliminar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_eliminar.Click
        If dgv_Unidad_Medida.SelectedRows.Count <> 0 Then
            Unidad._idUnidadMedida = dgv_Unidad_Medida.CurrentRow.Cells("idUnidadMedida").Value
            Unidad._nombre = dgv_Unidad_Medida.CurrentRow.Cells("nombre").Value
            If MessageBox.Show("Esta seguro que desea eliminar la Unidad de medida: " & Unidad._nombre, "ATENCION", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) = Windows.Forms.DialogResult.Yes Then
                deleteUnidadMedida(Unidad)
                cargarGrilla()
                blanquear()
            End If
        End If
    End Sub


    Public Sub deleteUnidadMedida(ByVal uniMed As UnidadMedida)
        Dim sql As String
        sql = "Delete UnidadMedida where idUnidadMedida = @idUnidadMedida"
        comando = New Data.SqlClient.SqlCommand
        comando.Parameters.AddWithValue("@idUnidadMedida", Unidad._idUnidadMedida)
        acceso.ejecutarActualizaciones(sql, comando)


    End Sub



   
    Private Sub ABM_Unidad_Medida_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        cargarGrilla()
        esNuevo = True
        blanquear()
    End Sub
End Class